#ifndef _CUTSCENE_TRANSITION_H_
#define _CUTSCENE_TRANSITION_H_

#include "math/counter.h"
#include <string>

namespace gameflow
{
class CutsceneTransition
{
public:
	enum CUTSCENE_TRANSITION
	{
		TRANSITION_NONE = 0,
		TRANSITION_FADEIN,
		TRANSITION_FADEOUT,
		TRANSITION_C
	};

	CutsceneTransition(bool reverse);
	~CutsceneTransition();
	virtual void	Render();

	virtual bool	IsReady();

	virtual void	OnEnter();
	virtual void	OnExit();

	virtual bool	Tick(float dt);

	static std::string TransitionTypeToName(CUTSCENE_TRANSITION t);
	static CUTSCENE_TRANSITION TransitionNameToType(const std::string name);
	static CutsceneTransition* GetTransition(const std::string name);
protected:
	math::Counter	m_Timer;
	bool			m_Reverse;
};


}//namespace gameflow

#endif